import PageRouter from '@/utils/PageRouter'
import tools from "@/utils/tools";

function makeMethod(funcName, message = {}) {
  window.webkit.messageHandlers.ios.postMessage({"funcName": funcName, message: message})
}
function init () {
  console.log('苹果原生接口适配初始化')
  exportInterface()
  /*ios 适配*/
  if (window.webkit) {
//    window.webkit.messageHandlers.ios.postMessage({"funcName": "方法名", message: {参数: 值}})
    window.native = window.android = {
      callNumber: (number) => makeMethod('callNumber', {number: number})  // 打电话
      , zms: () => makeMethod('zms', {}) // 打开筑民生app，
      , zrc: () => makeMethod('zrc', {}) //打开筑人才app
      , redGuiyang: (token) => makeMethod('redGuiyang', {token}) //打开红色贵阳
      , distanceLearning: (token) => makeMethod('distanceLearning', {token}) // 打开远程教育
      , openDangwu: () => makeMethod('openDangwu', {}) // 打开党务功能
      , downloadFile: (url, fileName) => makeMethod('downloadFile', {url, fileName}) //下载文件，url：下载地址，fileName：文件名称
      , setAliass: (id) => makeMethod('setAliass', {id}) // 极光推送设置别名，id：用户id
      , deleteAliass: (id) => makeMethod('deleteAliass', {id}) // 删除极光推送别名
      , checkVersion: (version,UUID,tokens, flag) => makeMethod('checkVersion', {version,UUID,tokens, flag}) //flag   1：登录进入主页检测更新，无需提示；2：设置界面点击检测版本，需要提示，提示信息："当前版本：" + versionName + "，已经是最新版本"；

      , capture: () => makeMethod('capture', {}) // 打开扫码面
      , exitApp: () => makeMethod('exitApp', {}) // 退出app
      , backPressed: () => makeMethod('backPressed', {}) // 打开url头部返回按钮调用
      , openUrl: (url,showBar = 1) => makeMethod('openNewWebPage', {url,showBar}) // 打开新窗口 showBar = 0时隐藏，showBar !=0  时显示，
      , openUrlAdapt: (url,showBar= 1) => {
        showBar = typeof showBar === 'string' ? 1 : 0
        makeMethod('openNewWebPage', {url,showBar})
      } // 打开新窗口 showBar = 0时隐藏，showBar !=0
      , getDeviceId: () => makeMethod('getDeviceId', {}) //获取安卓唯一标识码
      // , setDeviceID: () => makeMethod('setDeviceID', {}) //获取苹果唯一标识码
      , shareContentToWx: (title,text,type,shareType,url) => {
        if (!url) {
          return makeMethod('shareToWeChatmessage', {text,type}) //分享到微信
        } else {
          /**
           *  funcName: shareToWeChatLink
           message:{
           title:"标题"
           description:"描述或者子标题"
            webpageUrl:"http:www.baidu.com",//要分享的链接
            type:0, //0：好友 1：朋友圈
             } */
          return makeMethod('shareToWeChatmessage', {title, description: text,webpageUrl: url, type}) // 分享链接
        }
      }
    }
  }
  /**
   * 安卓适配
   * 因为有些接口是苹果先定义好，安卓后来加上，因此安卓对苹果的接口进行适配
   */
  else if (window.android) {
    if (window.android.openUrl && window.android.openBarUrl) {
      let openUrl = window.android.openUrl // 没有原生返回头
      let openBarUrl =  window.android.openBarUrl // 有原生返回头
      sessionStorage.setItem('nativeWindowOpenTime', Date.now())
      window.android.openUrlAdapt = (url, title = 1) => {
        if (typeof title === 'string') {
          window.android.openBarUrl(url, title)
        } else if (typeof title === 'number') {
          window.android.openBarUrl(url, '')
        } else {
          window.android.openUrl(url)
        }
      }
    }
  }
}

/*暴露接口*/
function exportInterface(){
  /*关闭第三方页面是原生调用*/
  window.closeWindow = function () {
    console.log('第三方页面关闭')
    sessionStorage.removeItem('nativeWindowOpenTime')
  }
  window.callNativeMethod =  function(methodName,jsonParams) { //暴露给安卓原生使用 // String callNativeMethod(String methodName, String jsonParams)
    // console.log('jsonParams',jsonParams);
    let arr =[]
    for ( let [key,val] of Object.entries(jsonParams)){
      console.log('key='+key,'value='+val)
      arr.push(val)
    }

    console.log('arr',arr);
    console.log('methodName',methodName);
    console.log('jsonParams',jsonParams);

   // alert(methodName)
   // alert(jsonParams)
    if (window.android && window.android[methodName]) {
      // window.android[methodName](jsonParams)
      // window.android[methodName]('履行好管党治党、强基固本的政治责任——2020年度党委（党组）书记抓基层党建工作述职评议考核综述','履行好管党治党、强基固本的政治责任——2020年度党委（党组）书记抓基层党建工作述职评议考核综述',0,1,'http://www.djhy.gov.cn/share/news.html?newsId=b2f19505f432853723b7563f2b5ff5a0')
      window.android[methodName](jsonParams)
    }
  }

  // 路由地址
  const ROUTER_MAP = {
    '1':	'redCloudNewsDetail', // 新闻
    '2':	'url', // 外部链接
    '3':	'oneAnswerEveryday', // 筑学习
    '4':	'applicationList', // 红友好友申请
    '5':	'videoDetail', // 课件点播
    '6':	'audioDetail', // 红云FM
    '7':	'groupInfoList', // 组工信息
    '8':	'workingTrends', // 筑固工程-动态
    '9':	'demonstration', // 筑固工程-示范带
    '10':	'onlineObservation', // 筑固工程-示范点
    '11':	'observe', // 筑固工程-线上观摩
    '12':	'policyDocument', // 党务知识
    '13':	'noticeNoticeDetail', // 通知公告
    '14':	'sanhuiyikeDetail', // 三会一课
    '15':	'sanhuiyikeDetail', // 主题党日
    '16':	'sanhuiyikeDetail', // 民主评议
    '17':	'newTermReminderDetail', // 换届提醒
    '18':	'branchSpace', // 支部空间
    '19': 'notifyDetail',//更新通知
    '20':  'noticeNew', // 首页通知
  }
  window.H5Open = function (type, businessId) {
    if (ROUTER_MAP[type] === 'url') {
      if(!window.android) {
        return console.error(`需在手机上操作:${businessId}`)
      }
      return window.android.openUrlAdapt(businessId)
    }

    const $router = window.myvue.$router
    PageRouter[ROUTER_MAP[type]].apply(window.myvue,[$router, businessId])
  }
}

export default {
  init
}
